// 解析index.html文件,目的是把css代码提取出来,写入到style.css文件中, 把js代码提取出来,写入到main.js文件中, 把剩下的html代码写入到index.html文件中
const fs = require("fs");
const path = require("path");

// 获取当前目录下的index.html文件的绝对路径
const indexPath = path.resolve(__dirname, "index.html");

// 读取index.html文件内容
fs.readFile(indexPath, "utf-8", (err, data) => {
  if (err) {
    console.error("读取文件出错:", err);
    return;
  }

  // 使用正则表达式提取<style>...</style>中的内容
  const styleMatch = data.match(/<style>([\s\S]*?)<\/style>/);
  const styleContent = styleMatch ? styleMatch[1].trim() : "";

  // 使用正则表达式提取<script>...</script>中的内容
  const scriptMatch = data.match(/<script>([\s\S]*?)<\/script>/);
  const scriptContent = scriptMatch ? scriptMatch[1].trim() : "";

  /**
   * // 在index.html文件中添加<link rel="stylesheet" href="style.css">和<script src="main.js"></script>
  htmlContent = `<link rel="stylesheet" href="style.css">
  <script src="main.js"></script>
  ${htmlContent}`;
   */
  // 提取剩下的HTML内容
  let htmlContent = data
    .replace(/<style>[\s\S]*?<\/style>/, `<link rel="stylesheet" href="style.css">`)
    .replace(/<script>[\s\S]*?<\/script>/, `<script src="main.js"></script>`)
    .trim();

  // 写入style.css文件
  fs.writeFile(path.resolve(__dirname, "style.css"), styleContent, (err) => {
    if (err) {
      console.error("写入style.css出错:", err);
      return;
    }
    console.log("style.css文件已写入");
  });

  // 写入main.js文件
  fs.writeFile(path.resolve(__dirname, "main.js"), scriptContent, (err) => {
    if (err) {
      console.error("写入main.js出错:", err);
      return;
    }
    console.log("main.js文件已写入");
  });

  // 写入index.html文件
  fs.writeFile(path.resolve(__dirname, "index1.html"), htmlContent, (err) => {
    if (err) {
      console.error("写入index1.html出错:", err);
      return;
    }
    console.log("index1.html文件已写入");
  });
});
